#include <stdio.h>

int main()
{
    // 字符数组命名
    char str[10] = {'h', 'e', 'l', 'l', 'o'};
    for (int i = 0; i < sizeof(str); i++)
    {
        printf("%c", str[i]);
    }
    printf("\n");

    // 以字符串形式命名
    // 字符串：以双引号括起来的一段字符组成的集合
    // 字符串放在内存的 文字常量区
    // const char *s = "hello"; // 常量字符串指针；//常量指针
    // char str[10] = "hello";  // hello在
    //%s：以字符形式输出一段数据
    // printf("%s\n", str);

    // char *s = "hello";
    // *s = 'p';
    // printf("%s\n", str); // 会出现段错误：非法访问；所以需要加const
    // s = "world"; //可以;可以使其指向其他的字符串常量

    char str[10] = "hello";
    // *s = 'p'; // 可以改
    // 字符数组和字符串存放区域不同

    // 静态数组首地址不允许被修改 
    // char str[10] = "hello";
    // str = "world"; // 相当于定义了const char *s = "world";

    // s = "world"; //可以

    // 字符串输出到\0位置  \0是字符串的结尾符号
    for (int i = 0; i < 10; i++)
    {
        printf("%c %d\n", str[i], str[i]);
    }

    return 0;
}
